package support.limit.model;

import lombok.Data;
import support.limit.enums.RateLimitTypeEnum;

@Data
public class LimitDTO {


    /**
     * 可以自定义的业务参数（如：用户id， token等信息）
     *
     * @return
     */
    String identifier;

    /**
     * 关键字key
     *
     * @return
     */
    String key;

    /**
     * 限流类型
     *
     * @return
     */
    RateLimitTypeEnum rateLimitType;

    /**
     * 限流的次数
     *
     * @return
     */
    long limit;

    /**
     * 时间间隔 单位为秒
     *
     * @return
     */
    long refreshInterval;

    /**
     * @return 向令牌桶中添加数据的时间间隔, 以秒为单位。默认值10秒
     */
    long tokenBucketTimeInterval;

    /**
     * @return 每次为令牌桶中添加的令牌数量。默认值5个
     */
    long tokenBucketStepNum;

    /**
     * 限流的时候的异常信息
     *
     * @return
     */
    String message;

}
